Determining a printing anomaly related to a 3d printed object

ABSTRACT

A device may obtain measurement data concerning a three-dimensional (3D) printed object, where the 3D printed object has a plurality of physical elements that comprise a plurality of different physical attributes, and where the plurality of physical elements and the plurality of different physical attributes are designed to exhibit one or more printing capabilities of a 3D printer that printed the 3D printed object. The device may process the measurement data to determine one or more printing anomalies relating to one or more physical elements, of the plurality of physical elements, and one or more physical attributes of the plurality of different physical attributes. The device may generate a set of instructions to permit the 3D printer to be adjusted to address the one or more printing anomalies, and may cause an action to be performed based on generating the set of instructions.

RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.16/159,219, filed Oct. 12, 2018 (now U.S. Pat. No. 10,363,705), which isincorporated herein by reference.

BACKGROUND

A three-dimensional (3D) printer may create a 3D printed object. The 3Dprinter may use a 3D printing technique, such as an additivemanufacturing technique, a subtractive manufacturing technique, and/orthe like to create the 3D printed object.

SUMMARY

According to some possible implementations, a non-transitorycomputer-readable medium may store instructions that include one or moreinstructions that, when executed by one or more processors of a device,cause the one or more processors to obtain measurement data concerning athree-dimensional (3D) printed object, wherein the 3D printed object hasa plurality of physical elements that comprise a plurality of differentphysical attributes, and wherein the plurality of physical elements andthe plurality of different physical attributes are designed to exhibitone or more printing capabilities of a 3D printer that printed the 3Dprinted object. The one or more instructions may cause the one or moreprocessors to process the measurement data to determine one or moreprinting anomalies relating to one or more physical elements, of theplurality of physical elements, and one or more physical attributes ofthe plurality of different physical attributes. The one or moreinstructions may cause the one or more processors to generate a set ofinstructions to permit the 3D printer to be adjusted to address the oneor more printing anomalies, and to cause an action to be performed basedon generating the set of instructions.

According to some possible implementations, a device may include one ormore memories, and one or more processors, communicatively coupled tothe one or more memories, to obtain measurement data concerning athree-dimensional (3D) printed object, wherein the 3D printed object hasa plurality of physical elements that comprise a plurality of differentphysical attributes, and wherein the plurality of physical elements andthe plurality of different physical attributes are designed to exhibitone or more capabilities of a 3D printer that printed the 3D printedobject. The one or more processors may determine one or more printingerrors relating to one or more physical elements, of the plurality ofphysical elements, or one or more physical attributes of the pluralityof different physical attributes based on the measurement data. The oneor more processors may generate a set of instructions to permit the 3Dprinter to be adjusted to prevent future printing errors, and may causean action to be performed based on generating the set of instructions.

According to some possible implementations, a method may includeobtaining, by a device, measurement data concerning a three-dimensional(3D) printed object that was printed by a 3D printer, wherein the 3Dprinted object has a plurality of physical elements, and wherein theplurality of physical elements comprises at least two of one or morecylinders, one or more pyramids, one or more spheres, one or morefrustums, one or more cubes, one or more prisms, or one or more cones.The method may include processing, by the device, the measurement datato determine one or more calibration issues relating to one or morephysical elements of the plurality of physical elements. The method mayinclude generating, by the device, a set of instructions to permit the3D printer to be adjusted to address the one or more calibration issues,and causing, by the device, an action to be performed based ongenerating the set of instructions.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1G are diagrams of example implementations described herein.

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, may be implemented.

FIG. 3 is a diagram of example components of one or more devices of FIG.2.

FIG. 4 is a flow chart of an example process for determining a printinganomaly related to a 3D printed object.

FIG. 5 is a flow chart of an example process for determining a printinganomaly related to a 3D printed object.

FIG. 6 is a flow chart of an example process for determining a printinganomaly related to a 3D printed object.

DETAILED DESCRIPTION

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings may identify the same or similar elements.

Many steps are needed for a three-dimensional (3D) printer to print a 3Dprinted object. First, a modelling application, such as a computer-aideddesign (CAD) application, creates a model of the 3D printed object.Typically, the CAD application creates a model file, such as a Standardfor the Exchange of Product model data (STEP) file, an initial graphicsexchange specification (IGES) file, and/or the like to represent themodel. Second, a meshing application converts the model file into asurface representation file, such as a standard triangle language (STL)file, that represents a surface representation of the model. Third, aslicing application reads the surface representation file and slices thesurface representation of the model into paths that one or more physicalcomponents of the 3D printer can follow to print the 3D printed model.The slicing application creates a machine readable file, such as ageometric code (G-code) file, that can be read by one or more digitalprocessing components of the 3D printer. Fourth, a machine controller,which may be part of the one or more digital processing components,translates the machine readable file into commands for operating the oneor more physical components of the 3D printer to print the 3D printedobject. Fifth, the 3D printer uses the one or more physical components,based on the commands, to print the 3D printed object. Accordingly,there are many chances for one or more printing errors to be createdand/or propagated in the 3D printing process. However, no current methodand/or tool exists to facilitate determining an origin of the one ormore printing errors.

Some implementations described herein provide a user device that iscapable of obtaining and processing measurement data concerning a 3Dprinted object to determine one or more printing anomalies, one or moreprinting errors, and/or one or more calibration issues concerning the 3Dprinted object. In some implementations, the 3D printed object has aplurality of physical elements that comprise a plurality of differentphysical attributes, wherein the plurality of physical elements and theplurality of different physical attributes are designed to exhibit oneor more printing capabilities of a 3D printer that printed the 3Dprinted object. In some implementations, the user device generates a setof instructions to permit the 3D printer to be adjusted to address theone or more printing anomalies, the one or more printing errors, and/orthe one or more calibration issues concerning the 3D printed object. Insome implementations, the user device causes an action to be performedbased on generating the set of instructions, such as causing display ofthe set of instructions on the user device, sending the set ofinstructions to the 3D printer to cause the 3D printer to display theset of instructions and/or execute the set of instructions, and/or thelike.

In this way, the user device helps identify one or more physicalcomponents, one or more digital processing components, and/or the likeof the 3D printer that need to be adjusted to minimize or prevent futureprinting anomalies, printing errors, and/or calibration issues fromoccurring. This may prevent inaccurate 3D printed objects from beingcreated, which may conserve 3D printer resources (e.g., filament made ofplastic, metal, plaster, and/or the like), associated with printing the3D printed object, power, and/or the like that would otherwise need tobe expended to reprint the 3D printed objects. This also may preventtime, the 3D printer resources, power, and/or the like from being wastedreprinting the 3D printed objects.

Moreover, the 3D printer may not need to undergo an expensive and/or atime-consuming diagnostic process to determine the accuracy of the 3Dprinter. Further, the 3D printer may not need particular physicalcomponents and/or particular digital processing components to test thecapabilities of the 3D printer. As such, the mechanical and/orelectrical complexity of the 3D printer may be reduced. This mayincrease the life of the 3D printer and/or reduce the amount ofmaintenance that the 3D printer requires. Moreover, downtime of the 3Dprinter may be more predictable as efficient maintenance schedules canbe generated and/or configured to enable service of the 3D printer.Accordingly, costs associated with maintaining the 3D printer can bedecreased and/or minimized.

FIGS. 1A-1G are diagrams of example implementations 100 describedherein. In some implementations, example implementation 100 may includea three-dimensional (3D) printer and/or a user device. In someimplementations, the 3D printer and the user device may be connected viaa network, such as the Internet, an intranet, and/or the like. In someimplementations, the 3D printer may include one or more physicalcomponents, such as a motor, a gear, a filament, a spool, a band, aprint head, an extruder, a fan, a heating element, a nozzle, and/or thelike.

As shown in FIG. 1A and by reference number 102, the 3D printer maycreate a 3D printed object using a 3D printing technique, such as anadditive manufacturing technique, a subtractive manufacturing technique,and/or the like. In some implementations, the 3D printer may operateand/or control the one or more physical components to create, print,generate, and/or the like the 3D printed object. In someimplementations, the 3D printer may include one or more digitalprocessing components to read a file, such as a geometric code (G-code)file, to generate and/or determine one or more commands to operateand/or control the one or more physical components.

In some implementations, the 3D printed object may include a pluralityof physical elements. As an example, as shown in FIG. 1B and byreference number 104, the 3D printer may create a first 3D printedobject (shown as 3D printed object A) that includes a plurality ofphysical elements. In some implementations, the plurality of physicalelements may include one or more shapes, such as one or more cylinders,one or more pyramids, one or more spheres, one or more frustums, one ormore cubes, one or more cuboids, one or more prisms, one or more cones,one or more columns, and/or the like. For example, as shown in FIG. 1B,the first 3D printed object includes a plurality of cylinders, aplurality of cuboids, an octagonal column, and/or the like. In someimplementations, the plurality of physical elements comprises one ormore additive elements (e.g., one or more elements created using anadditive manufacturing technique) or one or more subtractive elements(e.g., one or more elements created using a subtractive manufacturingtechnique).

In some implementations, the 3D printed object may include a pluralityof physical elements that comprise a plurality of different physicalattributes. As an example, as shown in FIG. 1C and by reference number106, the 3D printer may create a second 3D printed object (shown as 3Dprinted object B) that includes a plurality of physical elements thatcomprise a plurality of different physical attributes. In someimplementations, the plurality of different physical attributes mayinclude one or more features, such as one or more curved features, oneor more concave features, one or more convex features, one or more planefeatures, one or more elliptical features, one or more hyperbolicfeatures, one or more step features, one or more gradient features,and/or the like. For example, as shown in FIG. 1C, the second 3D printedobject includes a plurality of physical elements (e.g., a plurality ofcylinders, a plurality of cuboids, a plurality of cones, a plurality ofcylinder-spheres (e.g., spheres on top of cylinders), and/or the like)that comprise a plurality of different physical attributes, such as oneor more curved features, one or more concave features, one or moreconvex features, one or more plane features, one or more gradientfeatures, and/or the like. In some implementations, the plurality ofdifferent physical attributes comprises one or more positive attributes(e.g., one or more attributes in positive space) and/or one or morenegative attributes (e.g., one or more attributes in negative space).

In some implementations, the plurality of physical elements and/or theplurality of different physical attributes may be designed to exhibitone or more capabilities, such as printing capabilities, of the 3Dprinter that printed the 3D printed object. For example, the pluralityof physical elements and the plurality of different physical attributesmay be designed to exhibit an x-axis, a y-axis, and a z-axis printingcapability of the 3D printer. In some implementations, the plurality ofphysical elements and/or the plurality of different physical attributesmay be designed to exhibit one or more capabilities of one or morephysical components of the 3D printer. For example, the plurality ofphysical elements and the plurality of different physical attributes maybe designed to exhibit a capability of the motor of the 3D printer, acapability of the nozzle of the 3D printer, a capability of the extruderof the 3D printer, and/or the like. In some implementations, theplurality of physical elements and/or the plurality of differentphysical attributes may be designed to exhibit one or more capabilitiesof one or more digital processing components of the 3D printer. Forexample, the plurality of physical elements and the plurality ofdifferent physical attributes may be designed to exhibit an ability ofthe one or more digital processing components to generate commands foroperating the one or more physical components.

As shown in FIG. 1D and by reference number 108, the user device mayobtain measurement data concerning the 3D printed object. In someimplementations, the measurement data may include one or moremeasurements concerning the plurality of physical elements and/or theplurality of different physical attributes. In some implementations, themeasurement data may include one or more measurements concerning one ormore profiles, one or more dimensions, one or more geometries, one ormore coordinates, and/or the like of the plurality of physical elementsand/or the plurality of different physical attributes.

In some implementations, the user device may obtain the measurement datafrom a laser scanner. For example, the laser scanner may measure the 3Dprinted object using a laser to collect the measurement data and sendthe measurement data to the user device (e.g., transmit the measurementdata to the user device via the network). In some implementations, theuser device may obtain the measurement data from a camera device. Forexample, the camera device may measure the 3D printed object using anoptical measuring technique, such as a stereoscopic technique, aphotometric technique, a silhouette technique, and/or the like and sendthe measurement data to the user device (e.g., transmit the measurementdata to the user device via the network).

In some implementations, the user device may obtain the measurement datafrom a user interface of the user device. In some implementations, theuser interface may receive the measurement data based on a user of theuser device entering the measurement data into the user device via theuser interface. For example, the user may determine the measurement data(e.g., by using a caliper, a micrometer, a ruler, a meter stick, a tapemeasure, an inclinometer, a clinometer, and/or the like) and enter themeasurement data into the user device via the user interface (e.g., aphysical keyboard, a physical number pad, a digital keyboard, a digitalnumber pad, and/or the like of the user device).

In some implementations, the user device may obtain the measurement dataon a schedule. For example, the user device may obtain the measurementdata on a scheduled basis (e.g., every hour, every day, every week,every month, and/or the like). In some implementations, the user devicemay determine the schedule and obtain the measurement data according tothe schedule. In some implementations, the user device may obtain themeasurement data based on a trigger event. For example, the 3D printermay send a signal to the user device indicating that the 3D printer isto conduct a large print job (e.g., create a large 3D printed object,use a threshold amount of filament for the print job, take a thresholdamount of time to print the print job, and/or the like), multiple printjobs (e.g., more than a threshold amount of print jobs), a print jobafter a threshold amount of time (e.g., 10 hours, a day, a week, amonth, and/or the like) since a previous print job was conducted, aprint job after a threshold amount of print jobs (e.g., five, ten, onehundred, and/or the like print jobs) have been conducted, and/or thelike. The user device may obtain the measurement data bases on receivingthe signal. In some implementations, the user device may obtain themeasurement data on demand (e.g., based on a user request).

As shown in FIG. 1E and by reference number 110, the user device maydetermine one or more printing anomalies, one or more printing errors,and/or one or more calibration issues. In some implementations, the userdevice may process the measurement data to determine one or moreprinting anomalies, one or more printing errors, one or more calibrationissues, and/or the like relating to one or more physical elements, ofthe plurality of physical elements, and/or one or more physicalattributes of the plurality of different physical attributes. Forexample, the user device may process the measurement data to determineone or more printing anomalies in the x-axis, the y-axis, and/or thez-axis direction of the 3D printed object. As another example, the userdevice may process the measurement data to determine one or moreaccumulative printing errors (e.g., printing errors that accumulate dueto prior printing errors) in the x-axis, the y-axis, and/or the z-axisdirection of the 3D printed object. In some implementations, the userdevice may process the measurement data to determine one or morecalibration issues relating to the one or more physical elements of theplurality of physical elements and/or to the one or more digitalprocessing components.

In some implementations, the user device may process the measurementdata by comparing the measurement data and data from a model file (e.g.,a Standard for the Exchange of Product model data (STEP) file, aninitial graphics exchange specification (IGES) file, and/or the like), asurface representation file (e.g., a standard triangle language (STL)file), a machine readable file (e.g., a geometric code (G-code) file),and/or the like concerning one or more dimensions of the 3D printedobject. For example, the user device may process the measurement data bycomparing the measurement data and STL file data concerning one or moredimensions of the 3D printed object. The user device may determine aprinted length of a physical element, of the plurality of physicalelements, of the 3D printed object based on the measurement data andcompare the printed length to a model length of the physical elementrepresented by the STL file data. As another example, the user devicemay process the measurement data by comparing the measurement data andthe G-code file data concerning one or more dimensions of the 3D printedobject. The user device may determine a printed angle of a physicalattribute, of the plurality of different physical attributes, of the 3Dprinted object based on the measurement data and compare the printedangle to a model angle of the physical attribute represented by theG-code file data.

As shown in FIG. 1F and by reference number 112, the user device maygenerate a set of instructions to address the one or more printinganomalies, the one or more printing errors, and/or the one or morecalibration issues. In some implementations, the user device maygenerate the set of instructions to permit the 3D printer to be adjustedto address the one or more printing anomalies. In some implementations,the user device may generate a set of instructions to permit the 3Dprinter to be adjusted to prevent future printing errors. In someimplementations, the user device may generate a set of instructions topermit the 3D printer to be adjusted to address the one or morecalibration issues.

In some implementations, the set of instructions may include a firstinstruction to check a standard triangle language (STL) file concerningthe 3D printed object. In some implementations, the set of instructionsmay include a second instruction to check a geometric code (G-code) fileconcerning the 3D printed object. In some implementations, the userdevice may include a third instruction to check a motor, a gear, afilament, a spool, a band, a print head, an extruder, a fan, a heatingelement, a nozzle, and/or the like of the 3D printer.

In some implementations, the set of instructions may include executablecomputer code that can be read and executed by the digital processingcomponents of the 3D printer. In some implementations, the set ofinstructions can include rules for the 3D printer to perform diagnostictests on the one or more physical components and/or the one or moredigital processing components. In some implementations, the set ofinstructions may include parameters to be used by an artificialintelligence algorithm of the 3D printer to diagnose the cause of theone or more printing anomalies, the one or more printing errors, and/orthe one or more calibration issues.

As shown in FIG. 1G, the user device may cause an action to be performedbased on generating the set of instructions. As shown by referencenumber 114, the user device may cause display of the set of instructionsby the user device. For example, the user device may cause a userinterface of the user device, such as a screen, display, and/or thelike, to display the set of instructions.

As shown by reference number 116, the user device may send the set ofinstruction to the 3D printer. In some implementations, the user devicemay send the set of instructions to the 3D printer to cause the 3Dprinter to display the set of instructions. For example, the user devicemay cause a user interface of the 3D printer, such as a screen, display,and/or the like, to display the set of instructions. In this way, atechnician may be able to read the set of instructions while performingmaintenance work on the 3D printer.

As shown by reference number 118, the user device may send the set ofinstructions to the 3D printer to cause the 3D printer to execute theset of instructions. For example, the one or more digital processingcomponents of the 3D printer may receive the set of instructions andexecute the set of instruction to update the one or more digitalprocessing components (e.g., perform a software upgrade of the one ormore digital processing components), to perform a calibration actionconcerning the one or more physical components, to perform a correctionaction concerning the one or more physical components, to perform areset action concerning the one or more physical components, and/or thelike. In this way, the 3D printer may be automatically (e.g., withoutuser intervention) updated, reconfigured, and/or the like to remove ormitigate the one or more printing anomalies, the one or more printingerrors, and/or the one or more calibration issues.

As indicated above, FIGS. 1A-1G are provided merely as examples. Otherexamples are possible and may differ from what was described with regardto FIGS. 1A-1G.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods, described herein, may be implemented. As shown in FIG.2, environment 200 may include a three-dimensional (3D) object 210, a 3Dprinter 220, a user device 230, and a network 240. Devices ofenvironment 200 may interconnect via wired connections, wirelessconnections, or a combination of wired and wireless connections.

3D object 210 may include one or more objects capable of being createdby a 3D printer. For example, 3D object 210 may be a three-dimensionalphysical structure that is created, printed, generated, and/or the likeby 3D printer 220, as described herein. In some implementations, 3Dobject 210 may include a plurality of physical elements (e.g.,cylinders, pyramids, spheres, frustums, cubes, cuboids, prisms, cones,columns, and/or the like). In some implementations, 3D object 210 mayinclude a plurality of physical elements that comprise a plurality ofdifferent physical attributes (e.g., curved features, concave features,convex features, plane features, elliptical features, hyperbolicfeatures, step features, gradient features, and/or the like).

3D printer 220 may include one or more components capable of receivingdata, processing the data, and/or generating a 3D physical structurebased on the data. For example, 3D printer 220 may create, print, and/orgenerate 3D object 210 using a 3D printing technique, such as anadditive manufacturing technique, a subtractive manufacturing technique,and/or the like. In some implementations, the 3D printer may include oneor more physical components, such as a motor, a gear, a filament, aspool, a band, a print head, an extruder, a fan, a heating element, anozzle, and/or the like. In some implementations, 3D printer 220 mayinclude one or more digital processing components to receive informationand may, based on the information, operate and/or control the one ormore physical components to generate a three dimensional physicalstructure based on a base material, such as plastic (e.g.,thermoplastic, photopolymer, plastic film, etc.), metal (e.g., titaniumalloys, metal powder, eutectic metal, etc.), ceramic (e.g., ceramicpowder, etc.), plaster, etc. In one example, 3D printer 220 may use oneor more known three-dimensional printing techniques and/or technologies,such as stereolithography technology (e.g., photopolymerization);additive process technology (e.g., selective laser sintering, moltenpolymer deposition, granular materials binding, etc.); and/or otherthree-dimensional printing techniques and/or technologies. In someimplementations, 3D printer 220 may receive instructions from userdevice 230, and may execute the instructions.

User device 230 may include one or more devices capable of receiving,generating, storing, processing, and/or providing information associatedwith determining a printing anomaly related to a 3D printed object. Forexample, user device 230 may include a communication and/or computingdevice, such as a mobile phone (e.g., a smart phone, a radiotelephone,etc.), a laptop computer, a tablet computer, a handheld computer, agaming device, a wearable communication device (e.g., a smartwristwatch, a pair of smart eyeglasses, etc.), or a similar type ofdevice. User device 230 may obtain measurement data concerning 3D object210 (e.g., from a laser scanner, a user interface, a camera device,and/or the like), may determine printing anomalies, printing errors,and/or calibration issues (e.g., based on processing the measurementdata), and may generate instructions to address the printing anomalies,printing errors, and/or calibration issues. In some implementations,user device 230 may display the instructions, may send the instructionsto 3D printer 220, and/or the like.

Network 240 may include one or more wired and/or wireless networks. Forexample, network 240 may include a cellular network (e.g., a long-termevolution (LTE) network, a code division multiple access (CDMA) network,a 3G network, a 4G network, a 5G network, another type of nextgeneration network, etc.), a public land mobile network (PLMN), a localarea network (LAN), a wide area network (WAN), a metropolitan areanetwork (MAN), a telephone network (e.g., the Public Switched TelephoneNetwork (PSTN)), a private network, an ad hoc network, an intranet, theInternet, a fiber optic-based network, a cloud computing network, and/orthe like, and/or a combination of these or other types of networks.

The number and arrangement of devices and networks shown in FIG. 2 areprovided as an example. In practice, there may be additional devicesand/or networks, fewer devices and/or networks, different devices and/ornetworks, or differently arranged devices and/or networks than thoseshown in FIG. 2. Furthermore, two or more devices shown in FIG. 2 may beimplemented within a single device, or a single device shown in FIG. 2may be implemented as multiple, distributed devices. Additionally, oralternatively, a set of devices (e.g., one or more devices) ofenvironment 200 may perform one or more functions described as beingperformed by another set of devices of environment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300may correspond to 3D printer 220, user device 230, and/or the like. Insome implementations, 3D printer 220, user device 230, and/or the likemay include one or more devices 300 and/or one or more components ofdevice 300. As shown in FIG. 3, device 300 may include a bus 310, aprocessor 320, a memory 330, a storage component 340, an input component350, an output component 360, and a communication interface 370.

Bus 310 includes a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 is acentral processing unit (CPU), a graphics processing unit (GPU), anaccelerated processing unit (APU), a microprocessor, a microcontroller,a digital signal processor (DSP), a field-programmable gate array(FPGA), an application-specific integrated circuit (ASIC), or anothertype of processing component. In some implementations, processor 320includes one or more processors capable of being programmed to perform afunction. Memory 330 includes a random access memory (RAM), a read onlymemory (ROM), and/or another type of dynamic or static storage device(e.g., a flash memory, a magnetic memory, and/or an optical memory) thatstores information and/or instructions for use by processor 320.

Storage component 340 stores information and/or software related to theoperation and use of device 300. For example, storage component 340 mayinclude a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, and/or a solid state disk), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of non-transitory computer-readable medium,along with a corresponding drive.

Input component 350 includes a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, and/or amicrophone). Additionally, or alternatively, input component 350 mayinclude a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, and/or anactuator). Output component 360 includes a component that providesoutput information from device 300 (e.g., a display, a speaker, and/orone or more light-emitting diodes (LEDs)).

Communication interface 370 includes a transceiver-like component (e.g.,a transceiver and/or a separate receiver and transmitter) that enablesdevice 300 to communicate with other devices, such as via a wiredconnection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 may permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 may include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a Wi-Fi interface, a cellular network interface, orthe like.

Device 300 may perform one or more processes described herein. Device300 may perform these processes based on processor 320 executingsoftware instructions stored by a non-transitory computer-readablemedium, such as memory 330 and/or storage component 340. Acomputer-readable medium is defined herein as a non-transitory memorydevice. A memory device includes memory space within a single physicalstorage device or memory space spread across multiple physical storagedevices.

Software instructions may be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 may causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry may be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 may include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3. Additionally, or alternatively, aset of components (e.g., one or more components) of device 300 mayperform one or more functions described as being performed by anotherset of components of device 300.

FIG. 4 is a flow chart of an example process 400 for determining aprinting anomaly related to a 3D printed object. In someimplementations, one or more process blocks of FIG. 4 may be performedby a user device (e.g., user device 230). In some implementations, oneor more process blocks of FIG. 4 may be performed by another device or agroup of devices separate from or including the user device, such as a3D printer (e.g., 3D printer 220) and/or the like.

As shown in FIG. 4, process 400 may include obtaining measurement dataconcerning a three-dimensional (3D) printed object, wherein the 3Dprinted object has a plurality of physical elements that comprise aplurality of different physical attributes, wherein the plurality ofphysical elements and the plurality of different physical attributes aredesigned to exhibit one or more printing capabilities of a 3D printerthat printed the 3D printed object (block 410). For example, the userdevice (e.g., using processor 320, memory 330, storage component 340,input component 350, communication interface 370, and/or the like) mayobtain measurement data concerning a 3D printed object, as describedabove in connection with FIGS. 1A-1G. In some implementations, the 3Dprinted object may have a plurality of physical elements that comprise aplurality of different physical attributes, and the plurality ofphysical elements and the plurality of different physical attributes maybe designed to exhibit one or more printing capabilities of a 3D printerthat printed the 3D printed object.

As further shown in FIG. 4, process 400 may include processing themeasurement data to determine one or more printing anomalies relating toone or more physical elements, of the plurality of physical elements,and one or more physical attributes of the plurality of differentphysical attributes (block 420). For example, the user device (e.g.,using processor 320, memory 330, storage component 340, and/or the like)may process the measurement data to determine one or more printinganomalies relating to one or more physical elements, of the plurality ofphysical elements, and one or more physical attributes of the pluralityof different physical attributes, as described above in connection withFIGS. 1A-1G.

As further shown in FIG. 4, process 400 may include generating a set ofinstructions to permit the 3D printer to be adjusted to address the oneor more printing anomalies (block 430). For example, the user device(e.g., using processor 320, memory 330, storage component 340, and/orthe like) may generate a set of instructions to permit the 3D printer tobe adjusted to address the one or more printing anomalies, as describedabove in connection with FIGS. 1A-1G.

As further shown in FIG. 4, process 400 may include causing an action tobe performed based on generating the set of instructions (block 440).For example, the user device (e.g., using processor 320, memory 330,storage component 340, input component 350, output component 360,communication interface 370, and/or the like) may cause an action to beperformed based on generating the set of instructions, as describedabove in connection with FIGS. 1A-1G.

Process 400 may include additional implementations, such as any singleimplementation or any combination of implementations described belowand/or in connection with one or more other processes describedelsewhere herein.

In some implementations, the plurality of physical elements may includeone or more cylinders, one or more pyramids, one or more spheres, one ormore frustums, one or more cubes, one or more prisms, or one or morecones. In some implementations, the plurality of different physicalattributes may include one or more curved features, one or more concavefeatures, one or more convex features, one or more plane features, oneor more elliptical features, one or more hyperbolic features, one ormore step features, or one or more gradient features.

In some implementations, the plurality of different physical attributesmay include one or more positive attributes and one or more negativeattributes. In some implementations, the plurality of physical elementsmay include one or more additive elements or one or more subtractiveelements.

In some implementations, when processing the measurement data todetermine the one or more printing anomalies relating to the one or morephysical elements or one or more physical attributes, the user devicemay determine the one or more printing anomalies in an x-axis, a y-axis,and/or a z-axis direction of the 3D printed object. In someimplementations, when processing the measurement data to determine theone or more printing anomalies relating to the one or more physicalelements or the one or more physical attributes, the user device maydetermine one or more accumulative printing errors in an x-axis, ay-axis, and/or a z-axis direction of the 3D printed object.

In some implementations, the set of instructions may include a firstinstruction to check a standard triangle language (STL) file concerningthe 3D printed object, a second instruction to check a geometric code(G-code) file concerning the 3D printed object, or a third instructionto check a motor, a gear, a filament, a spool, a band, a print head, anextruder, a fan, a heating element, or a nozzle of the 3D printer.

In some implementations, when obtaining the measurement data concerningthe 3D printed object, the user device may receive the measurement datafrom a laser scanner, where the laser scanner measures the 3D printedobject using a laser. In some implementations, when obtaining themeasurement data concerning the 3D printed object, the user device mayreceive the measurement data from a user interface of the device, wherethe user interface is to receive the measurement data based on a user ofthe device entering the measurement data into the device via the userinterface.

Although FIG. 4 shows example blocks of process 400, in someimplementations, process 400 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 4. Additionally, or alternatively, two or more of theblocks of process 400 may be performed in parallel.

FIG. 5 is a flow chart of an example process 500 for determining aprinting anomaly related to a 3D printed object. In someimplementations, one or more process blocks of FIG. 5 may be performedby a user device (e.g., user device 230). In some implementations, oneor more process blocks of FIG. 5 may be performed by another device or agroup of devices separate from or including the user device, such as a3D printer (e.g., 3D printer 220) and/or the like.

As shown in FIG. 5, process 500 may include obtaining measurement dataconcerning a three-dimensional (3D) printed object, wherein the 3Dprinted object has a plurality of physical elements that comprise aplurality of different physical attributes, and wherein the plurality ofphysical elements and the plurality of different physical attributes aredesigned to exhibit one or more capabilities of a 3D printer thatprinted the 3D printed object (block 510). For example, the user device(e.g., using processor 320, memory 330, storage component 340, inputcomponent 350, communication interface 370, and/or the like) may obtainmeasurement data concerning a 3D printed object, as described above inconnection with FIGS. 1A-1G. In some implementations, the 3D printedobject may have a plurality of physical elements that comprise aplurality of different physical attributes, and the plurality ofphysical elements and the plurality of different physical attributes maybe designed to exhibit one or more capabilities of a 3D printer thatprinted the 3D printed object.

As further shown in FIG. 5, process 500 may include determining one ormore printing errors relating to one or more physical elements, of theplurality of physical elements, or one or more physical attributes ofthe plurality of different physical attributes based on the measurementdata (block 520). For example, the user device (e.g., using processor320, memory 330, storage component 340, and/or the like) may determineone or more printing errors relating to one or more physical elements,of the plurality of physical elements, or one or more physicalattributes of the plurality of different physical attributes based onthe measurement data, as described above in connection with FIGS. 1A-1G.

As further shown in FIG. 5, process 500 may include generating a set ofinstructions to permit the 3D printer to be adjusted to prevent futureprinting errors (block 530). For example, the user device (e.g., usingprocessor 320, memory 330, storage component 340, and/or the like) maygenerate a set of instructions to permit the 3D printer to be adjustedto prevent future printing errors, as described above in connection withFIGS. 1A-1G.

As further shown in FIG. 5, process 500 may include causing an action tobe performed based on generating the set of instructions (block 540).For example, the user device (e.g., using processor 320, memory 330,storage component 340, input component 350, output component 360,communication interface 370, and/or the like) may cause an action to beperformed based on generating the set of instructions, as describedabove in connection with FIGS. 1A-1G.

Process 500 may include additional implementations, such as any singleimplementation or any combination of implementations described belowand/or in connection with one or more other processes describedelsewhere herein.

In some implementations, when obtaining the measurement data concerningthe 3D printed object, the user device may obtain the measurement datafrom a camera device, where the camera device measures the 3D printedobject using an optical measuring technique. In some implementations,the plurality of physical elements and the plurality of differentphysical attributes may be designed to exhibit one or more capabilitiesof one or more physical components of the 3D printer.

In some implementations, the plurality of physical elements and theplurality of different physical attributes may be designed to exhibitone or more capabilities of one or more digital processing components ofthe 3D printer. In some implementations, the plurality of physicalelements and the plurality of different physical attributes may bedesigned to exhibit an x-axis, a y-axis, and a z-axis printingcapability of the 3D printer.

Although FIG. 5 shows example blocks of process 500, in someimplementations, process 500 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 5. Additionally, or alternatively, two or more of theblocks of process 500 may be performed in parallel.

FIG. 6 is a flow chart of an example process 600 for determining aprinting anomaly related to a 3D printed object. In someimplementations, one or more process blocks of FIG. 6 may be performedby a user device (e.g., user device 230). In some implementations, oneor more process blocks of FIG. 6 may be performed by another device or agroup of devices separate from or including the user device, such as a3D printer (e.g., 3D printer 220) and/or the like.

As shown in FIG. 6, process 600 may include obtaining measurement dataconcerning a three-dimensional (3D) printed object that was printed by a3D printer, wherein the 3D printed object has a plurality of physicalelements, and wherein the plurality of physical elements comprises atleast two of one or more cylinders, one or more pyramids, one or morespheres, one or more frustums, one or more cubes, one or more prisms, orone or more cones (block 610). For example, the user device (e.g., usingprocessor 320, memory 330, storage component 340, input component 350,communication interface 370, and/or the like) may obtain measurementdata concerning a 3D printed object that was printed by a 3D printer, asdescribed above in connection with FIGS. 1A-1G. In some implementations,the plurality of physical elements may include at least two of one ormore cylinders, one or more pyramids, one or more spheres, one or morefrustums, one or more cubes, one or more prisms, or one or more cones.

As further shown in FIG. 6, process 600 may include processing themeasurement data to determine one or more calibration issues relating toone or more physical elements of the plurality of physical elements(block 620). For example, the user device (e.g., using processor 320,memory 330, storage component 340, and/or the like) may process themeasurement data to determine one or more calibration issues relating toone or more physical elements of the plurality of physical elements, asdescribed above in connection with FIGS. 1A-1G.

As further shown in FIG. 6, process 600 may include generating a set ofinstructions to permit the 3D printer to be adjusted to address the oneor more calibration issues (block 630). For example, the user device(e.g., using processor 320, memory 330, storage component 340, and/orthe like) may generate a set of instructions to permit the 3D printer tobe adjusted to address the one or more calibration issues, as describedabove in connection with FIGS. 1A-1G.

As further shown in FIG. 6, process 600 may include causing an action tobe performed based on generating the set of instructions (block 640).For example, the user device (e.g., using processor 320, memory 330,storage component 340, input component 350, output component 360,communication interface 370, and/or the like) may cause an action to beperformed based on generating the set of instructions, as describedabove in connection with FIGS. 1A-1G.

Process 600 may include additional implementations, such as any singleimplementation or any combination of implementations described belowand/or in connection with one or more other processes describedelsewhere herein.

In some implementations, when processing the measurement data todetermine the one or more calibration issues relating to the one or morephysical elements, the user device may process the measurement data bycomparing the measurement data and standard triangle language (STL) filedata concerning one or more dimensions of the 3D printed object.

In some implementations, when processing the measurement data todetermine the one or more calibration issues relating to the one or morephysical elements, the user device may process the measurement data bycomparing the measurement data and geometric code (G-code) file dataconcerning one or more dimensions of the 3D printed object.

In some implementations, when causing the action to be performed basedon generating the set of instructions, the user device may cause displayof the set of instructions by the device. In some implementations, whencausing the action to be performed based on generating the set ofinstructions, the user device may send the set of instructions to the 3Dprinter to cause the 3D printer to execute the set of instructions.

Although FIG. 6 shows example blocks of process 600, in someimplementations, process 600 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 6. Additionally, or alternatively, two or more of theblocks of process 600 may be performed in parallel.

The foregoing disclosure provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theimplementations.

As used herein, the term component is intended to be broadly construedas hardware, firmware, or a combination of hardware and software.

Certain user interfaces have been described herein and/or shown in thefigures. A user interface may include a graphical user interface, anon-graphical user interface, a text-based user interface, or the like.A user interface may provide information for display. In someimplementations, a user may interact with the information, such as byproviding input via an input component of a device that provides theuser interface for display. In some implementations, a user interfacemay be configurable by a device and/or a user (e.g., a user may changethe size of the user interface, information provided via the userinterface, a position of information provided via the user interface,etc.). Additionally, or alternatively, a user interface may bepre-configured to a standard configuration, a specific configurationbased on a type of device on which the user interface is displayed,and/or a set of configurations based on capabilities and/orspecifications associated with a device on which the user interface isdisplayed.

It will be apparent that systems and/or methods, described herein, maybe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features may be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below may directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and may be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related andunrelated items, etc.), and may be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” or the like are intended to be open-ended terms. Further, thephrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

What is claimed is:
 1. A method, comprising: obtaining, by a device,measurement data concerning a three-dimensional (3D) printed object,wherein the 3D printed object has a plurality of physical elements, eachof the plurality of physical elements comprises a respective physicalattribute of a plurality of different physical attributes, and whereinthe plurality of physical elements and the plurality of differentphysical attributes exhibit one or more capabilities of a 3D printerthat printed the 3D printed object; determining, by the device and basedon the measurement data, one or more printing errors relating to atleast one of one or more physical elements, of the plurality of physicalelements, or one or more physical attributes of the plurality ofdifferent physical attributes; generating, by the device, a set ofinstructions for adjusting the 3D printer to prevent an additionalprinting error; and causing, by the device and based on the set ofinstructions, an action to be performed.
 2. The method of claim 1,wherein the set of instructions include an instruction to check one ormore physical components of the 3D printer, and wherein the actionincludes at least one of: performing a calibration action concerning theone or more physical components, performing a correction actionconcerning the one or more physical components, or performing a resetaction concerning the one or more physical components.
 3. The method ofclaim 1, wherein the plurality of physical elements and the plurality ofdifferent physical attributes are designed to exhibit an x-axis, ay-axis, and a z-axis printing capability of the 3D printer.
 4. Themethod of claim 1, wherein the plurality of physical elements and theplurality of different physical attributes are designed to exhibit oneor more capabilities of one or more digital processing components of the3D printer.
 5. The method of claim 1, wherein obtaining the measurementdata concerning the 3D printed object comprises: obtaining themeasurement data from a camera device, wherein the camera devicemeasures the 3D printed object using an optical measuring technique. 6.The method of claim 1, wherein the set of instructions includes one ormore of: a first instruction to check a standard triangle language (STL)file concerning the 3D printed object, a second instruction to check ageometric code (G-code) file concerning the 3D printed object, or athird instruction to check at least one of a motor, a gear, a filament,a spool, a band, a print head, an extruder, a fan, a heating element, ora nozzle of the 3D printer.
 7. The method of claim 1, furthercomprising: utilizing artificial intelligence to diagnose the one ormore printing errors.
 8. A device, comprising: one or more memories; andone or more processors communicatively coupled to the one or morememories, configured to: obtain measurement data concerning athree-dimensional (3D) printed object, wherein the 3D printed object hasa plurality of physical elements, each of the plurality of physicalelements comprise a respective physical attribute of a plurality ofdifferent physical attributes, and wherein the plurality of physicalelements and the plurality of different physical attributes exhibit oneor more capabilities of a 3D printer that printed the 3D printed object;determine, based on the measurement data, one or more printing errorsrelating to at least one of one or more physical elements, of theplurality of physical elements, or one or more physical attributes ofthe plurality of different physical attributes; and cause an action tobe performed based on determining the one or more printing errors. 9.The device of claim 8, further comprising: generate a set ofinstructions to permit the 3D printer to be adjusted to prevent anadditional printing error; and wherein the set of instructions includean instruction to check one or more physical components of the 3Dprinter, and wherein the action includes at least one of: perform acalibration action concerning the one or more physical components,perform a correction action concerning the one or more physicalcomponents, or perform a reset action concerning the one or morephysical components.
 10. The device of claim 9, wherein the one or morephysical components of the 3D printer include at least one of: a motor,a gear, a filament, a spool, a band, a print head, an extruder, a fan, aheating element, or a nozzle.
 11. The device of claim 8, wherein theplurality of physical elements and the plurality of different physicalattributes are designed to exhibit an x-axis, a y-axis, and a z-axisprinting capability of the 3D printer.
 12. The device of claim 8,wherein the plurality of physical elements and the plurality ofdifferent physical attributes are designed to exhibit one or morecapabilities of one or more digital processing components of the 3Dprinter.
 13. The device of claim 8, wherein the plurality of physicalelements comprises: one or more cylinders; one or more pyramids; one ormore spheres; one or more frustums; one or more cubes; one or moreprisms; or one or more cones.
 14. The device of claim 8, wherein theplurality of different physical attributes comprises: one or more curvedfeatures; one or more concave features; one or more convex features; oneor more plane features; one or more elliptical features; one or morehyperbolic features; one or more step features; or one or more gradientfeatures.
 15. A non-transitory computer-readable medium storinginstructions, the instructions comprising: one or more instructionsthat, when executed by one or more processors, cause the one or moreprocessors to: obtain measurement data concerning a three-dimensional(3D) printed object, wherein the 3D printed object has a plurality ofphysical elements, and each of the plurality of physical elementscomprises a respective physical attribute of a plurality of differentphysical attributes; process the measurement data to determine one ormore printing errors relating to at least one or more physical elements,of the plurality of physical elements, or one or more physicalattributes of the plurality of different physical attributes; generate aset of instructions for adjusting the 3D printer to prevent anadditional printing error; and cause, based on the set of instructions,an action to be performed.
 16. The non-transitory computer-readablemedium of claim 15, wherein the set of instructions include aninstruction to check one or more physical components of the 3D printer,and wherein the action includes at least one of: perform a calibrationaction concerning the one or more physical components, perform acorrection action concerning the one or more physical components, orperform a reset action concerning the one or more physical components.17. The non-transitory computer-readable medium of claim 15, wherein theplurality of physical elements comprises one or more additive elementsor one or more subtractive elements.
 18. The non-transitorycomputer-readable medium of claim 15, wherein the plurality of physicalelements and the plurality of different physical attributes are designedto exhibit one or more capabilities of one or more digital processingcomponents of the 3D printer.
 19. The non-transitory computer-readablemedium of claim 15, wherein the one or more instructions, that cause theone or more processors to process the measurement data to determine theone or more printing errors relating to the one or more physicalelements or the one or more physical attributes, cause the one or moreprocessors to: determine one or more accumulative printing errors in anx-axis, a y-axis, and/or a z-axis direction of the 3D printed object.20. The non-transitory computer-readable medium of claim 15, wherein theone or more instructions, that cause the one or more processors toobtain the measurement data concerning the 3D printed object, cause theone or more processors to: receive the measurement data from a laserscanner.